package com.example.room_demo

import androidx.room.ColumnInfo
import androidx.room.Entity
import androidx.room.PrimaryKey

/**
 * 问题描述
内置数据库升级，定义的对象和表结构的定义存在问题

java创建的基本类型：int 默认是NotNull = true
变量定义：
class TABLEA{
int ID;
}
name=‘ID’, type=‘INTEGER’, affinity=‘3’, notNull=true, primaryKeyPosition=1

但是内置数据库的INTEGER类型是
name=‘ID’, type=‘INTEGER’, affinity=‘3’, notNull=false, primaryKeyPosition=1

处理方法
创建对象的时候不用int，用Integer
class TABLEA{
@Nullable
Integer ID;
}*/

/**
 * @Entity：注解的类对应数据库中的一张表，我们可以指定表名，如果不指定的话，默认是类的名字
 */
@Entity(tableName = "data_table")
class DataBean {
    /**
     * @PrimaryKey：每一个表都需要一个主键，这点需要注意，Room就是根据主键是否相同来判断是否是同一个对象
     * @ColumnInfo：指定类的属性在表中列的名字，如果不指定，默认就是属性名。注意，存储在数据库中的类属性
     * 可见性必须是public的。
     */
    @PrimaryKey(autoGenerate = true)
    @ColumnInfo(name = "id")
    var id: Integer? = null

    @ColumnInfo(name = "game_name", typeAffinity = ColumnInfo.TEXT)
    var name: String? = null
    var game_id: String? = null
}